





<!DOCTYPE html>
<html class="writer-html5" lang="zh-CN" >
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Apache TVM Release Process &mdash; tvm 0.8.dev1982 文档</title>
  

  
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/gallery.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/tlcpack_theme.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../_static/tvm-logo-square.png"/>
  

  
  
  
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
        <script src="../_static/translations.js"></script>
    
    <script type="text/javascript" src="../_static/js/theme.js"></script>

    
    <script type="text/javascript" src="../_static/js/tlcpack_theme.js"></script>
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="next" title="User Tutorial" href="../tutorial/index.html" />
    <link rel="prev" title="Git 使用技巧" href="git_howto.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    
<header class="header">
    <div class="innercontainer">
      <div class="headerInner d-flex justify-content-between align-items-center">
          <div class="headerLogo">
               <a href="https://tvm.apache.org/"><img src=https://tvm.apache.org/assets/images/logo.svg alt="logo"></a>
          </div>

          <div id="headMenu" class="headerNav">
            <button type="button" id="closeHeadMenu" class="navCloseBtn"><img src="../_static/img/close-icon.svg" alt="Close"></button>
             <ul class="nav">
                <li class="nav-item">
                   <a class="nav-link" href=https://tvm.apache.org/community>Community</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://tvm.apache.org/download>Download</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://tvm.apache.org/vta>VTA</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://tvm.apache.org/blog>Blog</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://tvm.apache.org/docs>Docs</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://tvmconf.org>Conference</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://github.com/apache/tvm/>Github</a>
                </li>
                <li class="nav-item">
                   <a class="nav-link" href=https://tvmchinese.github.io/declaration_zh_CN.html>About-Translators</a>
                </li>
             </ul>
               <div class="responsivetlcdropdown">
                 <button type="button" class="btn-link">
                   ASF
                 </button>
                 <ul>
                     <li>
                       <a href=https://apache.org/>Apache Homepage</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/licenses/>License</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/security/>Security</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/foundation/thanks.html>Thanks</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/events/current-event>Events</a>
                     </li>
                     <li>
                       <a href=https://www.zhihu.com/column/c_1429578595417563136>Zhihu</a>
                     </li>
                 </ul>
               </div>
          </div>
            <div class="responsiveMenuIcon">
              <button type="button" id="menuBtn" class="btn-menu"><img src="../_static/img/menu-icon.svg" alt="Menu Icon"></button>
            </div>

            <div class="tlcDropdown">
              <div class="dropdown">
                <button type="button" class="btn-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                  ASF
                </button>
                <div class="dropdown-menu dropdown-menu-right">
                  <ul>
                     <li>
                       <a href=https://apache.org/>Apache Homepage</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/licenses/>License</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/security/>Security</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/foundation/thanks.html>Thanks</a>
                     </li>
                     <li>
                       <a href=https://www.apache.org/events/current-event>Events</a>
                     </li>
                     <li>
                       <a href=https://www.zhihu.com/column/c_1429578595417563136>Zhihu</a>
                     </li>
                  </ul>
                </div>
              </div>
          </div>
       </div>
    </div>
 </header>
 
    <nav data-toggle="wy-nav-shift" class="wy-nav-side fixed">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../index.html">
          

          
            
            <img src="../_static/tvm-logo-small.png" class="logo" alt="Logo"/>
          
          </a>

          
            
            
                <div class="version">
                  0.8.dev1982
                </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <p class="caption" role="heading"><span class="caption-text">如何开始</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../install/index.html">安装 TVM</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">贡献者指南</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="community.html">TVM社区指南</a></li>
<li class="toctree-l2"><a class="reference internal" href="code_review.html">执行代码审查</a></li>
<li class="toctree-l2"><a class="reference internal" href="committer_guide.html">Committer Guide</a></li>
<li class="toctree-l2"><a class="reference internal" href="document.html">Write Documentation for TVM</a></li>
<li class="toctree-l2"><a class="reference internal" href="code_guide.html">代码指南和提示</a></li>
<li class="toctree-l2"><a class="reference internal" href="error_handling.html">Error Handling Guide</a></li>
<li class="toctree-l2"><a class="reference internal" href="pull_request.html">Submit a Pull Request</a></li>
<li class="toctree-l2"><a class="reference internal" href="git_howto.html">Git 使用技巧</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Apache TVM Release Process</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#prepare-the-release-notes">Prepare the Release Notes</a></li>
<li class="toctree-l3"><a class="reference internal" href="#prepare-the-gpg-key">Prepare the GPG Key</a></li>
<li class="toctree-l3"><a class="reference internal" href="#cut-a-release-candidate">Cut a Release Candidate</a></li>
<li class="toctree-l3"><a class="reference internal" href="#upload-the-release-candidate">Upload the Release Candidate</a></li>
<li class="toctree-l3"><a class="reference internal" href="#call-a-vote-on-the-release-candidate">Call a Vote on the Release Candidate</a></li>
<li class="toctree-l3"><a class="reference internal" href="#post-the-release">Post the Release</a></li>
<li class="toctree-l3"><a class="reference internal" href="#update-the-tvm-website">Update the TVM Website</a></li>
<li class="toctree-l3"><a class="reference internal" href="#post-the-announcement">Post the Announcement</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">用户引导</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">User Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../how_to/index.html">How To Guides</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">开发者引导</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../dev/tutorial/index.html">Developer Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev/how_to/how_to.html">开发者指南</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">架构指南</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">Design and Architecture</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">主题引导</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../topic/microtvm/index.html">microTVM：裸机使用TVM</a></li>
<li class="toctree-l1"><a class="reference internal" href="../topic/vta/index.html">VTA: Versatile Tensor Accelerator</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">参考指南</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../reference/langref/index.html">语言参考</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/api/python/index.html">Python API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/api/links.html">Other APIs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/publications.html">Publications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../genindex.html">索引</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
      
      <nav class="wy-nav-top" aria-label="top navigation" data-toggle="wy-nav-top">
        
            <div class="togglemenu">

            </div>
            <div class="nav-content">
              <!-- tvm -->
              Table of content
            </div>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        

          




















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html">Docs</a> <span class="br-arrow">></span></li>
        
          <li><a href="index.html">贡献者指南</a> <span class="br-arrow">></span></li>
        
      <li>Apache TVM Release Process</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="../_sources/contribute/release_process.rst.txt" rel="nofollow"> <img src="../_static//img/source.svg" alt="viewsource"/></a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="apache-tvm-release-process">
<span id="release-process"></span><h1>Apache TVM Release Process<a class="headerlink" href="#apache-tvm-release-process" title="永久链接至标题">¶</a></h1>
<p>The release manager role in TVM means you are responsible for a few different things:</p>
<ul class="simple">
<li><p>Preparing release notes</p></li>
<li><p>Preparing your setup</p></li>
<li><p>Preparing for release candidates</p>
<ul>
<li><p>Cutting a release branch</p></li>
<li><p>Informing the community of timing</p></li>
<li><p>Making code changes in that branch with necessary version updates</p></li>
</ul>
</li>
<li><p>Running the voting process for a release</p>
<ul>
<li><p>Creating release candidates</p></li>
<li><p>Calling votes and triaging issues</p></li>
</ul>
</li>
<li><p>Finalizing and posting a release:</p>
<ul>
<li><p>Updating the TVM website</p></li>
<li><p>Finalizing release notes</p></li>
<li><p>Announcing the release</p></li>
</ul>
</li>
</ul>
<div class="section" id="prepare-the-release-notes">
<h2>Prepare the Release Notes<a class="headerlink" href="#prepare-the-release-notes" title="永久链接至标题">¶</a></h2>
<p>Release note contains new features, improvement, bug fixes, known issues and deprecation, etc. TVM provides <a class="reference external" href="https://discuss.tvm.ai/search?q=TVM%20Monthly%20%23Announcement">monthly dev report</a> collects developing progress each month. It could be helpful to who writes the release notes.</p>
<p>It is recommended to open a Github issue to collect feedbacks for the release note draft before cutting the release branch.</p>
</div>
<div class="section" id="prepare-the-gpg-key">
<h2>Prepare the GPG Key<a class="headerlink" href="#prepare-the-gpg-key" title="永久链接至标题">¶</a></h2>
<p>You can skip this section if you have already uploaded your key.</p>
<p>After generating the gpg key, you need to upload your key to a public key server. Please refer to <a class="reference external" href="https://www.apache.org/dev/openpgp.html#generate-key">https://www.apache.org/dev/openpgp.html#generate-key</a> for details.</p>
<p>If you want to do the release on another machine, you can transfer your gpg key to that machine via the <code class="code docutils literal notranslate"><span class="pre">gpg</span> <span class="pre">--export</span></code> and <code class="code docutils literal notranslate"><span class="pre">gpg</span> <span class="pre">--import</span></code> commands.</p>
<p>The last step is to update the KEYS file with your code signing key <a class="reference external" href="https://www.apache.org/dev/openpgp.html#export-public-key">https://www.apache.org/dev/openpgp.html#export-public-key</a>. Check in the changes to the TVM main branch, as well as ASF SVN,</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># the --depth=files will avoid checkout existing folders</span>
svn co --depth<span class="o">=</span>files <span class="s2">&quot;https://dist.apache.org/repos/dist/dev/tvm&quot;</span> svn-tvm
<span class="nb">cd</span> svn-tvm
<span class="c1"># edit KEYS file</span>
svn ci --username <span class="nv">$ASF_USERNAME</span> --password <span class="s2">&quot;</span><span class="nv">$ASF_PASSWORD</span><span class="s2">&quot;</span> -m <span class="s2">&quot;Update KEYS&quot;</span>
<span class="c1"># update downloads.apache.org</span>
svn rm --username <span class="nv">$ASF_USERNAME</span> --password <span class="s2">&quot;</span><span class="nv">$ASF_PASSWORD</span><span class="s2">&quot;</span> https://dist.apache.org/repos/dist/release/tvm/KEYS -m <span class="s2">&quot;Update KEYS&quot;</span>
svn cp --username <span class="nv">$ASF_USERNAME</span> --password <span class="s2">&quot;</span><span class="nv">$ASF_PASSWORD</span><span class="s2">&quot;</span> https://dist.apache.org/repos/dist/dev/tvm/KEYS https://dist.apache.org/repos/dist/release/tvm/ -m <span class="s2">&quot;Update KEYS&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="cut-a-release-candidate">
<h2>Cut a Release Candidate<a class="headerlink" href="#cut-a-release-candidate" title="永久链接至标题">¶</a></h2>
<p>To cut a release candidate, one needs to first cut a branch using selected version string, e.g.,</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/apache/tvm.git
<span class="nb">cd</span> tvm/
git branch v0.6.0
git push --set-upstream origin v0.6.0
</pre></div>
</div>
<p>(<em>Make sure the version numbers in the source code are correct.</em> Run <code class="code docutils literal notranslate"><span class="pre">python3</span> <span class="pre">version.py</span></code> to update the version.)</p>
<p>Go to the GitHub repositories “releases” tab and click “Draft a new release”,</p>
<ul class="simple">
<li><p>Provide the release tag in the form of “v1.0.0.rc0” where 0 means it’s the first release candidate</p></li>
<li><p>Select the commit by clicking Target: branch &gt; Recent commits &gt; $commit_hash</p></li>
<li><p>Copy and paste release note draft into the description box</p></li>
<li><p>Select “This is a pre-release”</p></li>
<li><p>Click “Publish release”</p></li>
</ul>
<p>Notice that one can still apply changes to the BRANCH after the cut, while the TAG is fixed. If any change is required for this release, a new TAG has to be created.</p>
<p>Remove previous release candidate (if applied),</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git push --delete origin v0.6.0.rc1
</pre></div>
</div>
<p>Create source code artifacts,</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone git@github.com:apache/tvm.git apache-tvm-src-v0.6.0.rc0
<span class="nb">cd</span> apache-tvm-src-v0.6.0.rc0
git checkout v0.6
git submodule update --init --recursive
git checkout v0.6.0.rc0
rm -rf .DS_Store
find . -name <span class="s2">&quot;.git*&quot;</span> -print0 <span class="p">|</span> xargs -0 rm -rf
<span class="nb">cd</span> ..
brew install gnu-tar
gtar -czvf apache-tvm-src-v0.6.0.rc0.tar.gz apache-tvm-src-v0.6.0.rc0
</pre></div>
</div>
<p>Use your GPG key to sign the created artifact. First make sure your GPG is set to use the correct private key,</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ cat ~/.gnupg/gpg.conf
default-key F42xxxxxxxxxxxxxxx
</pre></div>
</div>
<p>Create GPG signature as well as the hash of the file,</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>gpg --armor --output apache-tvm-src-v0.6.0.rc0.tar.gz.asc --detach-sig apache-tvm-src-v0.6.0.rc0.tar.gz
shasum -a <span class="m">512</span> apache-tvm-src-v0.6.0.rc0.tar.gz &gt; apache-tvm-src-v0.6.0.rc0.tar.gz.sha512
</pre></div>
</div>
</div>
<div class="section" id="upload-the-release-candidate">
<h2>Upload the Release Candidate<a class="headerlink" href="#upload-the-release-candidate" title="永久链接至标题">¶</a></h2>
<p>Edit the release page on Github and upload the artifacts created by the previous steps.</p>
<p>The release manager also needs to upload the artifacts to ASF SVN,</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># the --depth=files will avoid checkout existing folders</span>
svn co --depth<span class="o">=</span>files <span class="s2">&quot;https://dist.apache.org/repos/dist/dev/tvm&quot;</span> svn-tvm
<span class="nb">cd</span> svn-tvm
mkdir tvm-v0.6.0-rc0
<span class="c1"># copy files into it</span>
svn add tvm-0.6.0-rc0
svn ci --username <span class="nv">$ASF_USERNAME</span> --password <span class="s2">&quot;</span><span class="nv">$ASF_PASSWORD</span><span class="s2">&quot;</span> -m <span class="s2">&quot;Add RC&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="call-a-vote-on-the-release-candidate">
<h2>Call a Vote on the Release Candidate<a class="headerlink" href="#call-a-vote-on-the-release-candidate" title="永久链接至标题">¶</a></h2>
<p>The first voting takes place on the Apache TVM developers list (<a class="reference external" href="mailto:dev&#37;&#52;&#48;tvm&#46;apache&#46;org">dev<span>&#64;</span>tvm<span>&#46;</span>apache<span>&#46;</span>org</a>). To get more attention, one can create a github issue start with “[VOTE]” instead, it will be mirrored to dev&#64; automatically. Look at past voting threads to see how this proceeds. The email should follow this format.</p>
<ul class="simple">
<li><p>Provide the link to the draft of the release notes in the email</p></li>
<li><p>Provide the link to the release candidate artifacts</p></li>
<li><p>Make sure the email is in text format and the links are correct</p></li>
</ul>
<p>For the dev&#64; vote, there must be at least 3 binding +1 votes and more +1 votes than -1 votes. Once the vote is done, you should also send out a summary email with the totals, with a subject that looks something like [VOTE][RESULT] ….</p>
<p>In ASF, votes are open “at least” 72hrs (3 days). If you don’t get enough number of binding votes within that time, you cannot close the voting deadline. You need to extend it.</p>
<p>If the voting fails, the community needs to modified the release accordingly, create a new release candidate and re-run the voting process.</p>
</div>
<div class="section" id="post-the-release">
<h2>Post the Release<a class="headerlink" href="#post-the-release" title="永久链接至标题">¶</a></h2>
<p>After the vote passes, to upload the binaries to Apache mirrors, you move the binaries from dev directory (this should be where they are voted) to release directory. This “moving” is the only way you can add stuff to the actual release directory. (Note: only PMC can move to release directory)</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">export</span> <span class="nv">SVN_EDITOR</span><span class="o">=</span>vim
svn mkdir https://dist.apache.org/repos/dist/release/tvm
svn mv https://dist.apache.org/repos/dist/dev/tvm/tvm-v0.6.0-rc2 https://dist.apache.org/repos/dist/release/tvm/tvm-v0.6.0

<span class="c1"># If you&#39;ve added your signing key to the KEYS file, also update the release copy.</span>
svn co --depth<span class="o">=</span>files <span class="s2">&quot;https://dist.apache.org/repos/dist/release/tvm&quot;</span> svn-tvm
curl <span class="s2">&quot;https://dist.apache.org/repos/dist/dev/tvm/KEYS&quot;</span> &gt; svn-tvm/KEYS
<span class="o">(</span><span class="nb">cd</span> svn-tvm <span class="o">&amp;&amp;</span> svn ci --username <span class="nv">$ASF_USERNAME</span> --password <span class="s2">&quot;</span><span class="nv">$ASF_PASSWORD</span><span class="s2">&quot;</span> -m<span class="s2">&quot;Update KEYS&quot;</span><span class="o">)</span>
</pre></div>
</div>
<p>Remember to create a new release TAG (v0.6.0 in this case) on Github and remove the pre-release candidate TAG.</p>
<blockquote>
<div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git push --delete origin v0.6.0.rc2
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="update-the-tvm-website">
<h2>Update the TVM Website<a class="headerlink" href="#update-the-tvm-website" title="永久链接至标题">¶</a></h2>
<p>The website repository is located at <a class="reference external" href="https://github.com/apache/tvm-site">https://github.com/apache/tvm-site</a>. Modify the download page to include the release artifacts as well as the GPG signature and SHA hash.</p>
</div>
<div class="section" id="post-the-announcement">
<h2>Post the Announcement<a class="headerlink" href="#post-the-announcement" title="永久链接至标题">¶</a></h2>
<p>Send out an announcement email to <a class="reference external" href="mailto:announce&#37;&#52;&#48;apache&#46;org">announce<span>&#64;</span>apache<span>&#46;</span>org</a>, and <a class="reference external" href="mailto:dev&#37;&#52;&#48;tvm&#46;apache&#46;org">dev<span>&#64;</span>tvm<span>&#46;</span>apache<span>&#46;</span>org</a>. The announcement should include the link to release note and download page.</p>
</div>
</div>


           </div>
           
          </div>
          

<footer>

    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="../tutorial/index.html" class="btn btn-neutral float-right" title="User Tutorial" accesskey="n" rel="next">下一个 <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="git_howto.html" class="btn btn-neutral float-left" title="Git 使用技巧" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> 上一个</a>
      
    </div>

<div id="button" class="backtop"><img src="../_static//img/right.svg" alt="backtop"/> </div>
<section class="footerSec">
    <div class="footerHeader">
      <ul class="d-flex align-md-items-center justify-content-between flex-column flex-md-row">
        <li class="copywrite d-flex align-items-center">
          <h5 id="copy-right-info">© 2020 Apache Software Foundation | All right reserved</h5>
        </li>
      </ul>

    </div>

    <ul>
      <li class="footernote">Copyright © 2020 The Apache Software Foundation. Apache TVM, Apache, the Apache feather, and the Apache TVM project logo are either trademarks or registered trademarks of the Apache Software Foundation.</li>
    </ul>

</section>
</footer>
        </div>
      </div>

    </section>

  </div>
  

    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

  </body>
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
    <!-- Theme Analytics -->
    <script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-75982049-2', 'auto');
    ga('send', 'pageview');
    </script>

    
   

</body>
</html>